home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / FredFish PD 307.adf / Samp / SAMP.i < prev    next >
Text File  |  1990-01-13  |  9KB  |  447 lines

  1. ;====================== SAMP.LIB LVO LABELS ===========================
  2.  
  3.     XDEF    _LVOOpenSampWrite,_LVOWriteWaves,_LVOWriteNames,_LVOWriteMHDR
  4.     XDEF    _LVOWriteSampChunk,_LVOWriteSampData,_LVOCloseSamp
  5.     XDEF    _LVOOpenSampRead,_LVOLoadPlaymap,_LVOMixPlaymap,_LVOReadWaves
  6.     XDEF    _LVOMakeTransTable,_LVOSAMPErrorMsg
  7.  
  8. _LVOOpenSampWrite        equ    -30
  9. _LVOWriteWaves            equ    -36
  10. _LVOWriteNames            equ    -42
  11. _LVOWriteMHDR            equ    -48
  12. _LVOWriteSampChunk    equ    -54
  13. _LVOWriteSampData        equ    -60
  14. _LVOCloseSamp            equ    -66
  15. _LVOOpenSampRead        equ    -72
  16. _LVOLoadPlaymap        equ    -78
  17. _LVOMixPlaymap            equ    -84
  18. _LVOReadWaves            equ    -90
  19. _LVOMakeTransTable    equ    -96
  20. _LVOSAMPErrorMsg        equ    -102
  21.  
  22. ;======================== SAMP.LIB ERROR CODES ===========================
  23. ; As returned by OpenSampRead, OpenSampWrite, and ReadWaves.
  24.  
  25. SUCCESS        equ    0    ;Operation successful
  26. LIBINUSE        equ    1    ;Some other task is using samp.library
  27. NOOPENFILE    equ    2    ;Cannot open the file
  28. NOTSAMP        equ    3    ;Not a SAMP file
  29. BADSAMP        equ    4    ;Bad SAMP file
  30. NOSUPPORT    equ    5    ;SAMP file not supported
  31. OUTOFRANGE    equ    6    ;Too few waves in the file
  32. OUTOFMEM        equ    7    ;No mem to load the next wave
  33. NOMOREWAVES    equ    8    ;No more waves in the file
  34. USERABORT    equ    9    ;Application Abort
  35.  
  36.  
  37. ;====================== The SAMP file MHDR chunk ========================
  38. ;MHDR size is dependant upon the size of the imbedded playMap.
  39.  
  40. ;MHDR:
  41. ;NumOfWaves        dc.b    0        ;The number of waves in this file
  42. ;Format            dc.b    0        ;# of ORIGINAL significant bits from 8-28
  43. ;Flags            dc.b    0        ;Various bits indicate various functions
  44. ;PlayMode        dc.b    0        ;determines play MODE of the playMap
  45. ;NumOfChans        dc.b    4        ;# of bytes in playMap for each midi note
  46. ;Pad                dc.b    0
  47. ;PlayMap            ds.b    128*4    ;a map of which wave numbers to use for
  48.                                     ;each of 128 possible Midi Notes. Default to 4
  49.                                     ;bytes per midi note (i.e. numOfChans = 4)
  50.  
  51. MHDR_NumOfWaves    equ    0
  52. MHDR_Format            equ    1
  53. MHDR_Flags            equ    2
  54. MHDR_PlayMode        equ    3
  55. MHDR_NumOfChans    equ    4
  56. MHDR_Pad                equ    5
  57. MHDR_PlayMap        equ    6
  58.  
  59. INDEPENDANT        equ    0
  60. MULTI                equ    1
  61. STEREO            equ    2
  62. PAN                equ    3
  63.  
  64. ;====================== The SAMP file BODY chunk ======================
  65. ; Every wave has an 80 byte waveHeader, followed by its data. The waveHeader
  66. ; structure is as follows:
  67.  
  68. ;waveHeader:
  69. ;WaveSize            dc.l    0
  70. ;MidiSampNum        dc.w    0    ;for midi
  71. ;LoopType            dc.b    0    ;for midi
  72. ;InsType                dc.b    0
  73. ;Period                dc.l    0
  74. ;Rate                    dc.l    0
  75. ;LoopStart            dc.l    0
  76. ;LoopEnd                dc.l    0
  77. ;RootNote            dc.b    0
  78. ;VelStart            dc.b    0
  79. ;VelTable            ds.w    16
  80. ;ATAKsize            dc.l    0
  81. ;RLSEsize            dc.l    0
  82. ;FATKsize            dc.l    0
  83. ;FRLSsize            dc.l    0
  84. ;USERsize            dc.l    0
  85. ;USERtype            dc.w    0
  86.  
  87. sizeofwaveHeader    equ    80
  88. wh_WaveSize        equ    0
  89. wh_MidiSampNum    equ    4
  90. wh_loopType        equ    6
  91. wh_InsType        equ    7
  92. wh_Period        equ    8
  93. wh_Rate            equ    12
  94. wh_LoopStart    equ    16
  95. wh_LoopEnd        equ    20
  96. wh_RootNote        equ    24
  97. wh_VelStart        equ    25
  98. wh_VelTable        equ    26
  99. wh_ATAKsize        equ    58
  100. wh_RLSEsize        equ    62
  101. wh_FATKsize        equ    66
  102. wh_FRLSsize        equ    70
  103. wh_USERsize        equ    74
  104. wh_USERtype        equ    78
  105.  
  106. SPECIFIC        equ    0
  107. VOLMOD        equ    1
  108. PERMOD        equ    2
  109. LOOPING        equ    3
  110.  
  111. ;================ SAMPlib SampleHeader64 structure =============
  112. ; Used by the lib to load SAMP files
  113.  
  114. ;SampleHeader64:
  115. ;OneShotAddr        dc.l    0
  116. ;Flags                dc.b    0
  117. ;VelStart            dc.b    0
  118. ;VelTable            ds.w    16
  119. ;OneShotEnd            dc.l    0        ;loop start, as well
  120. ;TransTable            dc.l    0        ;points to ORIGINAL_PITCH
  121. ;RootNote            dc.w    0
  122. ;LoopLength            dc.l    0        ;in words, bit 31 cannot be set
  123. ;AttackRate            dc.b    0        ;0 - 255
  124. ;AttackInc            dc.b    0        ;1 - 64
  125. ;DecayRate            dc.b    0        ;1 - 255
  126. ;DecayDec            dc.b    0        ;1 - 64
  127. ;SusLevel            dc.b    0        ;0 - 64
  128. ;ReleaseRate        dc.b    0        ;1 - 255
  129. ;ReleaseDec            dc.b    0        ;1 - 64
  130. ;ClipNote            dc.b    0
  131. ;WaveSize            dc.l    0        ;in bytes
  132.  
  133. sizeofSampleHeader64    equ    64
  134. sh_OneShotAddr        equ    0
  135. sh_Flags                equ    4
  136. sh_VelStart            equ    5
  137. sh_VelTable            equ    6
  138. sh_OneShotEnd        equ    38
  139. sh_TransTable        equ    42
  140. sh_RootNote            equ    46
  141. sh_LoopLength        equ    48
  142. sh_AttackRate        equ    52
  143. sh_AttackInc        equ    53
  144. sh_DecayRate        equ    54
  145. sh_DecayDec            equ    55
  146. sh_SusLevel            equ    56
  147. sh_ReleaseRate        equ    57
  148. sh_ReleaseDec        equ    58
  149. sh_ClipNote            equ    59
  150. sh_WaveSize            equ    60
  151.  
  152. ;====================== For the Transpose table ====================
  153. ; For playback of the wave */
  154.  
  155. ;TransposeNode:
  156. ;Next            dc.l    0
  157. ;Prev            dc.l    0
  158. ;Rate            dc.l    0
  159. ;Orig            dc.l    0
  160. ;TSize        dc.l    0
  161.  
  162. tn_Next    equ    0
  163. tn_Prev    equ    4
  164. tn_Rate    equ    8
  165. tn_Orig    equ    12
  166. tn_TSize    equ    16
  167.  
  168.  
  169. ;=================== the library's SAMPInfo structure ================
  170.  
  171. ;SAMPInfo:
  172. ;FileHandle        dc.l    0
  173. ;SAMP                dc.b    'SAMP'
  174. ;FileSize        dc.l    0
  175. ;MHDR                dc.b    'MHDR'
  176. ;MHDRSize        dc.l    0
  177. ;NumOfWaves        dc.b    0
  178. ;Format            dc.b    0
  179. ;Flags            dc.b    0
  180. ;PlayMode        dc.b    0
  181. ;NumOfChans        dc.b    0
  182. ;Pad                dc.b    0
  183. ;PlayMap            ds.b    128*4
  184. ;ANNOChunk        dc.l    0
  185. ;BODYChunk        dc.l    0
  186. ;NAMEChunk        dc.l    0
  187. ;AUTHChunk        dc.l    0
  188. ;COPYChunk        dc.l    0
  189. ;ATAK                dc.l    0
  190. ;RLSE                dc.l    0
  191. ;FATK                dc.l    0
  192. ;FRLS                dc.l    0
  193. ;USER                dc.l    0
  194. ;EXTRA            dc.l    0
  195. ;SeekPos            dc.l    0
  196. ;MemType            dc.l    0
  197. ;MaxChars        dc.w    0
  198. ;LowPer            dc.w    0
  199. ;HighPer            dc.w    0
  200.  
  201. sizeofSAMPInfo    equ    596
  202. si_Handle        equ    0
  203. si_SAMP            equ    4
  204. si_FileSize        equ    8
  205. si_MHDR            equ    12
  206. si_MHDRSize        equ    16
  207. si_NumOfWaves    equ    20
  208. si_Format        equ    21
  209. si_Flags            equ    22
  210. si_PlayMode        equ    23
  211. si_NumOfChans    equ    24
  212. si_Pad            equ    25
  213. si_PlayMap        equ    26
  214. si_ANNOChunk    equ    538
  215. si_BODYChunk    equ    542
  216. si_NAMEChunk    equ    546
  217. si_AUTHChunk    equ    550
  218. si_COPYChunk    equ    554
  219. si_ATAK            equ    558
  220. si_RLSE            equ    562
  221. si_FATK            equ    566
  222. si_FRLS            equ    570
  223. si_USER            equ    574
  224. si_EXTRA            equ    578
  225. si_SeekPos        equ    582
  226. si_MemType        equ    586
  227. si_MaxChars        equ    590
  228. si_LowPer        equ    592
  229. si_HighPer        equ    594
  230.  
  231. ;======================== Instrument types =========================
  232. ; You can construct the InsType field by OR'ing the family with the
  233. ;    class. For example,
  234. ;
  235. ;    InsType = STRING | VIOLA_BOW
  236.  
  237. ;Instrument Families
  238. STRING    equ    $10
  239. WOODWIND    equ    $20
  240. KEYBOARD    equ    $30
  241. GUITAR    equ    $40
  242. VOICE        equ    $50
  243. DRUM1        equ    $60
  244. DRUM2        equ    $70
  245. PERCUSSION1 equ    $80
  246. BRASS1    equ    $90
  247. BRASS2    equ    $A0
  248. CYMBAL    equ    $B0
  249. EFFECT1    equ    $C0
  250. EFFECT2    equ    $D0
  251. SYNTH        equ    $E0
  252.  
  253. ; Instrument Classes
  254.  
  255. ; For the STRING family, the high nibble is as follows:
  256.  
  257. VIOLIN_BOW    equ    $1
  258. VIOLIN_PLUCK equ    $2
  259. VIOLIN_GLIS    equ    $3
  260. VIOLIN_TREM    equ    $4
  261. VIOLA_BOW    equ    $5
  262. VIOLA_PLUCK    equ    $6
  263. VIOLA_GLIS    equ    $7
  264. VIOLA_TREM    equ    $8
  265. CELLO_BOW    equ    $9
  266. CELLO_PLUCK    equ    $A
  267. CELLO_GLIS    equ    $B
  268. CELLO_TREM    equ    $C
  269. BASS_BOW        equ    $D
  270. BASS_PLUCK    equ    $E
  271. BASS_TREM    equ    $F
  272.  
  273. ;For the BRASS1 family, the high nibble is as follows:
  274.  
  275. BARITONE_SAX equ    $1
  276. BARI_GROWL    equ    $2
  277. TENOR_SAX    equ    $3
  278. TENOR_GROWL    equ    $4
  279. ALTO_SAX        equ    $5
  280. ALTO_GROWL    equ    $6
  281. SOPRANO_SAX    equ    $7
  282. SOPRANO_GROWL equ    $8
  283. TRUMPET        equ    $9
  284. MUTED_TRUMPET equ    $A
  285. TRUMPET_DROP equ    $B
  286. TROMBONE        equ    $C
  287. TROMBONE_SLIDE equ    $D
  288. TROMBONE_MUTE equ    $E
  289.  
  290. ;For the BRASS2 family, the high nibble is as follows:
  291.  
  292. FRENCH_HORN    equ    $1
  293. TUBA            equ    $2
  294. FLUGAL_HORN    equ    $3
  295. ENGLISH_HORN equ    $4
  296.  
  297. ;For the WOODWIND family, the high nibble is as follows:
  298.  
  299. CLARINET        equ    $1
  300. FLUTE            equ    $2
  301. PAN_FLUTE    equ    $3
  302. OBOE            equ    $4
  303. PICCOLO        equ    $5
  304. RECORDER        equ    $6
  305. BASSOON        equ    $7
  306. BASS_CLARINET equ    $8
  307. HARMONICA    equ    $9
  308.  
  309. ;For the KEYBOARD family, the high nibble is as follows:
  310.  
  311. GRAND_PIANO    equ    $1
  312. ELEC_PIANO    equ    $2
  313. HONKYTONK    equ    $3
  314. TOY_PIANO    equ    $4
  315. HARPSICHORD    equ    $5
  316. CLAVINET        equ    $6
  317. PIPE_ORGAN    equ    $7
  318. HAMMOND_B3    equ    $8
  319. FARFISA_ORGAN equ    $9
  320. HARP            equ    $A
  321.  
  322. ;For the DRUM1 family, the high nibble is as follows:
  323.  
  324. KICK        equ    $1
  325. SNARE        equ    $2
  326. TOM        equ    $3
  327. TIMBALES    equ    $4
  328. CONGA_HIT equ    $5
  329. CONGA_SLAP equ    $6
  330. BRUSH_SNARE equ    $7
  331. ELEC_SNARE equ    $8
  332. ELEC_KICK equ    $9
  333. ELEC_TOM    equ    $A
  334. RIMSHOT    equ    $B
  335. CROSS_STICK equ    $C
  336. BONGO        equ    $D
  337. STEEL_DRUM equ    $E
  338. DOUBLE_TOM equ    $F
  339.  
  340. ;For the DRUM2 family, the high nibble is as follows:
  341.  
  342. TIMPANI        equ    $1
  343. TIMPANI_ROLL equ    $2
  344. LOG_DRUM        equ    $3
  345.  
  346. ;For the PERCUSSION1 family, the high nibble is as follows:
  347.  
  348. BLOCK            equ    $1
  349. COWBELL        equ    $2
  350. TRIANGLE        equ    $3
  351. TAMBOURINE    equ    $4
  352. WHISTLE        equ    $5
  353. MARACAS        equ    $6
  354. BELL            equ    $7
  355. VIBES            equ    $8
  356. MARIMBA        equ    $9
  357. XYLOPHONE    equ    $A
  358. TUBULAR_BELLS equ    $B
  359. GLOCKENSPEIL equ    $C
  360.  
  361. ;For the CYMBAL family, the high nibble is as follows:
  362.  
  363. CLOSED_HIHAT equ    $1
  364. OPEN_HIHAT    equ    $2
  365. STEP_HIHAT    equ    $3
  366. RIDE            equ    $4
  367. BELL_CYMBAL    equ    $5
  368. CRASH            equ    $6
  369. CHOKE_CRASH    equ    $7
  370. GONG            equ    $8
  371. BELL_TREE    equ    $9
  372. CYMBAL_ROLL    equ    $A
  373.  
  374. ;For the GUITAR family, the high nibble is as follows:
  375.  
  376. ELECTRIC        equ    $1
  377. MUTED_ELEC    equ    $2
  378. DISTORTED    equ    $3
  379. ACOUSTIC        equ    $4
  380. STRING_12    equ    $5
  381. NYLON_STRING equ    $6
  382. POWER_CHORD    equ    $7
  383. HARMONICS    equ    $8
  384. CHORD_STRUM    equ    $9
  385. BANJO            equ    $A
  386. ELEC_BASS    equ    $B
  387. SLAPPED_BASS equ    $C
  388. POPPED_BASS    equ    $D
  389. SITAR            equ    $E
  390. MANDOLIN        equ    $F
  391.  
  392. ;For the VOICE family, the high nibble is as follows:
  393.  
  394. MALE_AHH    equ    $1
  395. FEMALE_AHH equ    $2
  396. MALE_OOO    equ    $3
  397. FEMALE_OOO equ    $4
  398. FEMALE    equ    $5
  399. BREATHY    equ    $6
  400. LAUGH        equ    $7
  401. WHISTLER    equ    $8
  402.  
  403. ;For the EFFECTS1 family, the high nibble is as follows:
  404.  
  405. EXPLOSION    equ    $1
  406. GUNSHOT        equ    $2
  407. CREAKING_DOOR equ    $3
  408. DOOR_SLAM    equ    $4
  409. DOOR_CLOSE    equ    $5
  410. SPACEGUN        equ    $6
  411. JET_ENGINE    equ    $7
  412. PROPELLER    equ    $8
  413. HELOCOPTER    equ    $9
  414. BROKEN_GLASS equ    $A
  415. THUNDER        equ    $B
  416. RAIN            equ    $C
  417. BIRDS            equ    $D
  418. JUNGLE_NOISES equ    $E
  419. FOOTSTEP        equ    $F
  420.  
  421. ;For the EFFECTS2 family, the high nibble is as follows:
  422.  
  423. MACHINE_GUN    equ    $1
  424. TELEPHONE    equ    $2
  425. DOG_BARK        equ    $3
  426. DOG_GROWL    equ    $4
  427. BOAT_WHISTLE equ    $5
  428. OCEAN            equ    $6
  429. WIND            equ    $7
  430. CROWD_BOOS    equ    $8
  431. APPLAUSE        equ    $9
  432. ROARING_CROWDS equ    $A
  433. SCREAM        equ    $B
  434. SWORD_CLASH    equ    $C
  435. AVALANCE        equ    $D
  436. BOUNCING_BALL equ    $E
  437. BALL_ON_BAT    equ    $F    /* OR CLUB */
  438.  
  439. ;For the SYNTH family, the high nibble is as follows:
  440.  
  441. SYNTH_STRINGS equ    $1
  442. SQUARE_WAVE        equ    $2
  443. SAWTOOTH_WAVE        equ    $3
  444. TRI_WAVE        equ    $4
  445. SINE_WAVE            equ    $5
  446. NOISE            equ    $6
  447.